WranglerV2.0でCloudflare Workers
Introduction
ひさしぶりにCloudflare Workersを動かそうと思い、
WranglerをインストールしてQuick Startやってたら、
なんかエラーがでて動かなくなってました。
確認したところ、Wranglerが2.0になってたらしいです。
去年の11月からβで、先日正式にリリースされた様子。
せっかくなのでWranglerV2でWorkers動かしてみます。
Wrangler?
Cloudflare WorkersのCLIツールです。
V1のときはダッシュボードからAPI Token発行とかが必要だったみたいですが、
V2になったらそれも必要なくなりました。
特徴や機能についてはここに詳細があります。
Setup
まずはCloudflareのアカウントを作成。
ここから作りましょう。
登録してログインできたらダッシュボードが見れるようになります。
Try
wranglerをnpmでインストールします。
以前は@cloudflare/wranglerと指定していたようですが、
V2からは↓の指定でOKです。
% npm install -g wrangler
versionが2になってます。
% wrangler --version 2.0.5
loginコマンドでOAuth認証する・・・はずですが、自分の環境のNodeが古くてエラーでした。
% wrangler login Wrangler requires at least Node.js v16.7.0. You are using v16.2.0. You should use the latest Node.js version if possible, as Cloudflare Workers use a very up-to-date version of V8. Consider using a Node.js version manager such as https://volta.sh/ or https://github.com/nvm-sh/nvm.
v16.7.0以降のnodeをインストールして再度loginします。
自分の場合、nodenv使ってたので↓のようにinstall〜rehashを実行。
% nodenv install 16.10.0 % nodenv local 16.10.0 % nodenv gloval 16.10.0 % nodenv rehash #再度インストール % npm install -g wrangler
wrangler loginを実行するとブラウザが起動するので
問題なければAllow。
initコマンドを使い、my-worker-rustという名前でRustのWorkers作成。
% npm init cloudflare my-worker-rust worker-rust Success ? Your "my-worker-rust" directory is ready for you~!
wrangler devコマンドを使うと、
ローカルでWorkersが試せます。
% cd my-worker-rust % npx wrangler dev ⛅️ wrangler 2.0.5 ------------------- Running custom build: cargo install -q worker-build && worker-build --release [INFO]: ? Checking for the Wasm target... [INFO]: ? Compiling to Wasm... ・・・・・・ Finished release [optimized] target(s) in 21.49s [INFO]: ⬇️ Installing wasm-bindgen... [INFO]: Optimizing wasm binaries with `wasm-opt`... [INFO]: Optional fields missing from Cargo.toml: 'description', 'repository', and 'license'. These are not necessary, but recommended [INFO]: ✨ Done in 26.72s [INFO]: ? Your wasm pkg is ready to publish at /Users/nakamura.shuta/dev/cloudflare/my-worker-rust/build. ⬣ Listening at http://localhost:8787
ちゃんと動いてますね。
% curl http://localhost:8787/ Hello from Workers!%
wrangler publishでデプロイ。
簡単です。
% npx wrangler publish --name worker-example ⛅️ wrangler 2.0.5 ------------------- Running custom build: cargo install -q worker-build && worker-build --release [INFO]: ? Checking for the Wasm target... [INFO]: ? Compiling to Wasm... Finished release [optimized] target(s) in 0.12s [INFO]: ⬇️ Installing wasm-bindgen... [INFO]: Optimizing wasm binaries with `wasm-opt`... [INFO]: Optional fields missing from Cargo.toml: 'description', 'repository', and 'license'. These are not necessary, but recommended [INFO]: ✨ Done in 0.92s [INFO]: ? Your wasm pkg is ready to publish at /path/your/my-worker-rust/build. Uploaded my-rust-worker (1.23 sec) Published my-rust-worker (3.50 sec) worker-example.your-sub-domain.workers.dev
こちらも問題なく動いてます。
% curl https://worker-example.your-sub-domain.workers.dev/worker-version 0.0.9
Summary
というわけで、WranglerV2.0をつかってCloudflare Workersを動かしてみました。
今後D1のリリースも控えてますし、いろいろ楽しみです。